<script setup>
import { onMounted, onBeforeUnmount } from 'vue';
import { useTokenStore } from './stores/useTokenStore';
import { useRouter } from 'vue-router';

const tokenStore = useTokenStore();
const router = useRouter();

// 定期检查token是否需要刷新
let tokenCheckInterval = null;

onMounted(() => {
  // 每分钟检查一次token是否即将过期
  tokenCheckInterval = setInterval(async () => {
    // 如果token存在且即将过期，尝试刷新
    if (tokenStore.token && tokenStore.isTokenExpired) {
      console.log('Token即将过期，尝试刷新');
      const refreshSuccess = await tokenStore.refreshToken();
      
      // 如果刷新失败且不在登录页，跳转到登录页
      if (!refreshSuccess && router.currentRoute.value.name !== 'Login') {
        router.push('/login');
      }
    }
  }, 60000); // 每分钟检查一次
});

onBeforeUnmount(() => {
  // 清除定时器
  if (tokenCheckInterval) {
    clearInterval(tokenCheckInterval);
  }
});
</script>

<template>
  <RouterView :key="$route.fullPath" />
</template>

<style scoped>
* {
  margin: 0;
  padding: 0;
}
</style>
